//package com.fingard.dsp.bank.directbank.ccb04;
//
//import com.fingard.diagnostics.LogHelper;
//import com.fingard.dsp.bank.directConfig.ActSetItem;
//import com.fingard.dsp.bank.directConfig.FtpSet;
//import com.fingard.dsp.bank.directbank.bankInterface.IStatement;
//import com.fingard.dsp.bank.reqrespobj.statement.ReqQryStatement;
//import com.fingard.dsp.bank.reqrespobj.statement.RetAtsStatement;
//import com.fingard.dsp.bank.reqrespobj.statement.TransState;
//import com.fingard.dsp.bank.reqrespobj.statement.detail.RetAtsStatementDetail;
//import com.fingard.io.FileHelper;
//import com.fingard.net.FtpReceiver;
//import com.fingard.net.MixFtp;
//import com.fingard.text.StringHelper;
//
//import java.io.BufferedReader;
//import java.io.File;
//import java.io.IOException;
//import java.io.StringReader;
//
//public class CCB04Statement extends CCB04Base implements IStatement {
//    @Override
//    public RetAtsStatement d_Qry_Statement(ReqQryStatement p_reqQrySttm) throws Exception {
//        RetAtsStatement retAts = new RetAtsStatement(p_reqQrySttm);
//        retAts.writeStart();
//
//        String[] tmpSenderUnderHeader = getPosRecStatement(p_reqQrySttm, retAts);
//        String tmpSenderUnderTotalNum = retAts.totalNum;
//        if (retAts.getWrittenRdCount() == 0) {
//            if ("-1".equals(tmpSenderUnderHeader[0])) {
//                retAts.writeRespCode("-1");
//                retAts.writeRespInfo(tmpSenderUnderHeader[1]);
//            } else {
//                retAts.writeRespCode("0");
//                retAts.writeRespInfo("交易为空");
//            }
//        } else {
//            retAts.isWritedTotalNum(String.valueOf(Integer.parseInt(tmpSenderUnderTotalNum)));
//        }
//
//        retAts.writeEnd();
//        return retAts;
//    }
//    private String[] getPosRecStatement(ReqQryStatement p_reqQrySttm, RetAtsStatement retAts) {
//        String[] respHeader = new String[]{"", ""};
//
//        String tmpRespCode = "";
//        String tmpRespInfo = "";
//
//        retAts.totalNum = "0";
//        int totalNum = 0;
//        MixFtp mixFtp = null;
//        try {
//        	String merchantId = p_reqQrySttm.actNum;
//            ActSetItem actSetItem = getBankConfig().getActSetItem(p_reqQrySttm.actNum, "pos");
//            if (actSetItem != null && StringHelper.hasAnyChar(actSetItem.merchantId)) {
//            	merchantId = actSetItem.merchantId;
//            }else{
//            	WriteBankLogLn2("未找到账号:[" + p_reqQrySttm.actNum + "]商户配置信息!----直接采用账号");
//            }
//            String downFileName = merchantId + p_reqQrySttm.busDate + ".txt";
//            StringBuilder sbFileContent = new StringBuilder();
//            String localFilePath = createTempFileDirectory() + File.separator + downFileName;
//            WriteBankLogLn2("建设银行POS对账单保存本地路径:" + localFilePath);
//            String posRecRequestType = getBankConfig().getValueAsString("posRecRequestType");
//            if ("ftp".equalsIgnoreCase(posRecRequestType) || "sftp".equalsIgnoreCase(posRecRequestType)) {
//            	FtpSet ftpSet = bankFront.getFtpSet("pos");
//
//                //ftpSet.downDir = StringHelper.trimEnd(ftpSet.downDir, "/") + "/" + p_reqQrySttm.busDate
//
//                WriteBankLogLn2("建设银行POS对账单FTP服务器地址:" + ftpSet.serverIP + ":" + ftpSet.port);
//            	WriteBankLogLn2("下载目录：" + ftpSet.downDir+"，下载文件名："+downFileName);
//            	WriteBankLogLn2("建设银行POS对账单所在服务器路径:" + StringHelper.trimEnd(ftpSet.downDir, "/") + "/" + downFileName);
//
//            	mixFtp = new MixFtp(ftpSet);
//            	FtpReceiver ftpReceiver = mixFtp.downloadFileFromDir(ftpSet.downDir, downFileName, localFilePath);
//            	if (ftpReceiver.isCompleted) {
//                    if (sbFileContent.length() > 0) {
//                        sbFileContent.append("\n");
//                    }
//                    sbFileContent.append(FileHelper.readFileText(localFilePath, "UTF-8"));
//                } else {
//                    tmpRespCode = "-1";
//                    tmpRespInfo = "建设银行POS对账单下载失败,原因:\r\n" + ftpReceiver.connMsg;
//                }
//            }else {
//            	String bkFolder = bankFront.getStrValueByFor("bankFolder", "pos");
//            	String posFile = StringHelper.trimEndFileSp(bkFolder)+File.separator+downFileName;
//            	if(FileHelper.existFile(posFile)){
//            		if (sbFileContent.length() > 0) {
//                        sbFileContent.append("\n");
//                    }
//                    sbFileContent.append(FileHelper.readFileText(posFile, "UTF-8"));
//            	}else{
//            		tmpRespCode = "-1";
//                    tmpRespInfo = "文件"+posFile+"不存在";
//            	}
//            }
//
//
//            if (StringHelper.hasAnyChar(sbFileContent.toString())) {
//                tmpRespCode = "0";
//
//                String tmpStrRet = sbFileContent.toString();
//                WriteBankLogLn2("建设银行POS对账单响应数据:\r\n" + tmpStrRet);
//
//                StringReader strReader = new StringReader(tmpStrRet);
//                BufferedReader tmpReader = new BufferedReader(strReader);
//
//                boolean isContinue = false;
//                while (true) {
//                    String eachline = tmpReader.readLine();
//                    if(eachline == null){
//                    	break;
//                    }
//                    if (StringHelper.isNullOrEmpty(eachline)) {
//                        continue;
//                    }
//                    String[] detailNodes = eachline.split(",");
//                    if (p_reqQrySttm.actNum.equals(detailNodes[0].trim()) || merchantId.equals(detailNodes[0].trim())) {
//                        totalNum++;
//                        isContinue = true;
//                        RetAtsStatementDetail tmpRetDetail = new RetAtsStatementDetail();
//
//                        if (StringHelper.hasAnyChar(detailNodes[2])) {
//                            tmpRetDetail.askNumber = detailNodes[2].trim();
//                        }
//                        if (StringHelper.hasAnyChar(detailNodes[5])) {
//                            if(detailNodes[5].startsWith("-")){
//                                tmpRetDetail.cdFlag = "27";
//                            }else{
//                                tmpRetDetail.cdFlag = "22";
//                            }
//                            tmpRetDetail.amount = detailNodes[5].trim().replace("-","");
//
//                        }
//
//                        if (StringHelper.hasAnyChar(detailNodes[6])) {
//                            tmpRetDetail.fee = detailNodes[6].trim();
//                        }
//                        tmpRetDetail.bkSeq = "";
//                        tmpRetDetail.memo = detailNodes[9].trim();
//                        tmpRetDetail.busTime = detailNodes[3].replace("-","")+detailNodes[4].replace(":","");
//
//                        if (StringHelper.hasAnyChar(detailNodes[8])) {
//                            tmpRetDetail.oppAct = detailNodes[8].trim();
//                        }
//                        tmpRetDetail.transState = TransState.Success;
//                        retAts.writeRetDetail(tmpRetDetail);
//                    }
//                }
//
//                if (!isContinue) {
//                    tmpRespCode = "0";
//                    tmpRespInfo = "没有符合条件的记录!";
//                }
//            }
//            //}else{
//            //    tmpRespCode = "-1";
//            //    tmpRespInfo = "未找到账号:[" + p_reqQrySttm.actNum + "]商户配置信息!";
//            //}
//
//        } catch (Exception ex) {
//            //ex.printStackTrace();
//            tmpRespCode = "-1";
//            tmpRespInfo = LogHelper.getStackTrace(ex);
//            WriteBankLogLn(ex);
//        }finally{
//        	if(mixFtp!=null){
//        		try {
//					mixFtp.disconnect();
//				} catch (IOException e) {
//					this.WriteBankLogLn(e);
//				}
//        	}
//        }
//
//        retAts.totalNum = String.valueOf(totalNum);
//
//        respHeader[0] = tmpRespCode;
//        respHeader[1] = tmpRespInfo;
//
//        return respHeader;
//    }
//}
